#ifndef CRATE_H_
#define CRATE_H_

#include "sceneObject.h"
#include "model/actions/grabable.h"
#include "model/actions/gravity.h"

class Crate : public SceneObject , public Grabable , public Solid{
	private:
		bool grabbed;
		float zrotatedAngle;

	public:
		Crate(const Cube& cube,const Point& dir,const ObjectModelPtr& model);
		~Crate();

		void timeStep();

		void move(float dx,float dy,float dz);
		void rotate(float angle);

		void setModelMatrix();

		static std::string name(){
			return "crate";
		}

		void notifySolidPositionChange(float vel=0);

		void notifyCollision(Solid* obj){}
		void notifyCollided(Solid* obj){}
};

#endif /* CRATE_H_ */
